﻿using Nantianmen.Domain.Dtos;
using Nantianmen.Domain.Models;
using Nantianmen.Shared;

namespace Nantianmen.Core.Services
{
    public interface IClusterService
    {
        Task<NantianmenResult> AddDestinationAsync(Cluster cluster, string destinationId);
        Task<NantianmenResult> AddDestinationsAsync(Cluster cluster, IEnumerable<string> destinationIds);
        Task<NantianmenResult> CreateClusterAsync(Cluster cluster);
        Task<Cluster?> FindClusterAsync(string clusterId);
        Task<List<Cluster>> GetClustersAsync();
        Task<List<Destination>> ListDestinationsAsync(string id);
        Task<NantianmenResult> RemoveClusterAsync(string clusterId);
        Task<NantianmenResult> RemoveDestinationAsync(Cluster cluster, string destinationId);
        Task<NantianmenResult> RemoveDestinationsAsync(Cluster cluster, IEnumerable<string> destinationIds);
        Task<NantianmenResult> UpdateClusterAsync(Cluster cluster);
    }
}